ByteByteGo logo
ByteByteGo logo

Chapter 6: Common Mistakes

I’ve noticed certain repeating themes I am calling “mistakes” with resumes. These are areas of improvement, which almost always make resumes better. Let’s go through these.

Poor Format

I have seen too many resumes where developers had good and relevant experience, but this became hard to understand, due to poor choices in formatting. The most common issues are:

  • Hard-to-scan resumes. Multi-column resume formats are far harder to scan than the one-column ones. While candidates are often proud of how much information they squeezed on one page, this format often leads to their resume being read in less detail. Simple formats work better.
  • Too much bolding. Your resume should have little bolding, and that bolding should be consistent, limited to key parts, like dates, titles and companies. I see too many resumes bold out seemingly random parts in the middle of the sentence that don’t seem to make sense. Focus on concise descriptions, and a clean format, and be very careful with bolding within sentences.
  • Too “flashy” resumes. A developer resume is 95% about the content, 5% about the style. Still, some people go overboard, choosing eye-catching templates, to the point that contrasts can make things hard to read, and recruiters struggle to find relevant information. Resumes like this can work well for design- or UX-heavy positions, though.
  • Inconsistent formatting. Different font sizes, key information being misaligned or positioning elements with spaces over tabs can all lead to resumes that show amateur formatting. While this itself will not result in a rejection for more senior candidates, it conveys that you don’t have much attention to detail, and don’t know how to present yourself well.
  • Sloppy phrases scattered across the resume. For example, using “etc.”, “and so on”, slang or unprofessional language. Use clear and neat grammar, and full sentences.

Common mistakes: bolding and inconsistent formatting

Take a look at this resume. What seems to be issues that stand out immediately?

Image represents a tech resume for Rob Oldnatie, a Software Developer.  The resume is structured into sections: contact information (phone number: +1-123-456-7891, email: hello@example.com, LinkedIn: in/rob432) at the top; followed by 'Technical Skills' listing programming languages (Java, SQL, PL/SQL, JavaScript, Python), databases (Oracle Database, SQL Server), cloud platforms (Microsoft Azure DevOps), and technologies (REST, JSON, XML, SOAP, HTTP, Linux, Jira, Git, SVN, Docker); then 'Work Experience' detailing two roles at Line Corp in the United States. The first role, 'Software Engineer – Tax Returns' (Sep 2018 – Present), describes projects involving third-party interface development, API improvements resulting in 45% cost reduction and 80% support ticket reduction, W4 interface design, and SAP Concur interface redesign.  Technologies used are listed as Java, Oracle Database, PL/SQL, Postman, T-SQL, MS SQL Server, Azure DevOps (TFS), SQL Server Studio Management, and Git. The second role, 'Software Engineer – Customer Happiness' (February 2016 – August 2018), highlights the creation of troubleshooting tools, development of a data receiving module for a mass transaction uploader, and implementation of a data restriction feature in a compensation reporting tool.  Technologies/frameworks used are listed as PL/SQL Developer, SQL, JavaScript, Oracle database, Git, SVN, HTML, CSS, and Jira.  The entire resume follows a clear, hierarchical structure with bullet points detailing accomplishments within each role.

As a hiring manager, a few things immediately pop out. First, there is far too much bolding. And the things that are bolded are inconsistent. Why is “W4 forms” bolded, when the application is for a tech company where the work has nothing to do with taxes? Second, the formatting is inconsistent. Font sizes are different, and alignment is off. Finally, the language used is sloppy in places.

Visualizing the issues:

Image represents a tech resume for Rob Oldnatie, a Software Developer.  The resume is structured into sections: contact information (phone number: +1-123-456-7891, email: hello@example.com, LinkedIn: in/rob432), technical skills (listing Java, SQL, Oracle Database, and numerous other technologies and architectures), and work experience (two roles: Software Engineer – Tax Returns and Software Engineer – Customer Happiness).  Each work experience section details responsibilities and accomplishments using bullet points.  Red arrows connect aspects of the resume to three numbered annotations: '1. Too much bolding,' indicating excessive use of bold text; '2. Inconsistent formatting,' highlighting inconsistencies in the formatting style; and '3. Sloppy phrasing,' pointing out instances of unclear or imprecise wording.  The work experience sections include dates (Sep 2018 – Present and February 2016 – August 2018 respectively) and list technologies used in each role.  The overall structure flows from personal information to skills and then chronologically through work history, with the annotations highlighting areas for improvement in presentation and clarity.

While the content of the resume is decent, these issues convey the perception of a person who doesn’t have good attention to detail. It also makes the resume harder to read and to comprehend.

Forgetting About Your Audience

You are writing your resume for recruiters and hiring managers who you do not know. You want to convey your skills and tell a story to them, assuming they know nothing about you. Common mistakes people make include these:

  • Using internal acronyms and jargon. Avoid using project names and acronyms that are internal and people outside the company don’t understand. “I did QA for the N94 and E70 programs.” The recruiter reading the resume will not know what N94 was—nor would most people outside the company you worked for.
  • Not reflecting on the job, and not tailoring the resume for the position. Make sure you keep the audience of your resume in mind. The audience is the recruiter who is recruiting for that specific position which you are applying for. So, say you are applying for a frontend position and have both frontend and backend experience: in your examples, always start with the frontend ones, not the other way around.
  • Using cliches over statements backed by evidence. What does the following sentence tell about you? “I am a team player and a fast learner who can hit the ground running.” From the point of the recruiter, it doesn’t give them any information. It doesn’t contain facts, examples or specifics. It is a cliche, in its current form. Use the “results, impact and your contribution” structure in your experiences section instead to demonstrate any traits through what you have delivered. If you really think it’s important to convey these, save them for a cover letter—but even there, back it up by examples. Instead of “I am a team player”, let your actions speak for themselves: “I organized two team offsites and onboarded three new starters.”
  • Being too verbose. The attention of recruiters is limited: they will glance at your resume for seconds. Avoid large blocks of text or long sentences. Optimize for quick and easy reading. It’s not easy to distill years of experience in a few short sentences. Still, you need to do this, and ruthlessly edit your resume.

Unnecessary Details

Many resumes include details that are a waste of space. These are most frequently added because traditional resume templates have them, and candidates assume they should share these details. Here are the most common details that you can skip, in the vast majority of cases.

  • Photos. Skip the photo is the strong recommendation of this book, due to the biases it creates. In the rare cases in very few countries where you are required to add a photo, use a professional one that makes you look good. Smile on the photo or have a positive vibe and avoid the mugshot-like passport photos that make you look grumpy.
  • Too many contact details / social profiles. For contact details, don’t share more than four. The most common ones I see are phone, email, LinkedIn, GitHub and website. Choose no more than four of these—and list them so they take up little real estate, on the top of your resume. Anything beyond this is irrelevant. Most recruiters and hiring managers won’t even click through on these ones. I’ve seen resumes that list Skype, Instagram, Twitter, Upwork, Medium—on top of LinkedIn, Github and a website. Stick to very few and relevant links.
  • Spoken languages. Many resume templates come with a “Languages” section and people who are non-native English speakers keep this separate section that usually says “Languages: Hungarian (mother tongue), English (fluent).” This doesn’t add much value—unless you’re interviewing for a Hungarian company, that is. For a tech resume for an English-first company, people assume you are fluent in English and they care about your programming languages, not the different ones you speak.
  • Self-rating your skill level on languages or technologies. Some resumes have stats, percentages, or X out of 5 scores next to languages and technologies. This self-rating can only backfire. First, if you rate yourself as 5/5 or 100%, hiring managers will be dubious. No one really knows everything about a programming language. However, if you rate yourself at 75% or 3 stars, other hiring managers will assume you’re not that proficient. And your rating will be off, anyway. Remove all ratings, and just list things you have proficiency with. If people will want to probe this on the interview, that’s fair game. But that self-rating is not necessary.
  • List of references or “references available on request”. Both are a waste of space. References will only be important after you pass the interviews. And it is expected in tech that you’ll be able and willing to provide these. Large companies use background checks, and smaller ones follow up themselves, usually after asking you. But save the space from your resume for this.
  • Quotes from references praising you. Some resumes add quotes from others, such as “Described as ‘executing at extremely high standard’ on previous performance reviews” or quotes from referrals praising you. These look out of place. Your developer resume is about you selling yourself, not adding quotes from others. It’s best to save any quotes for the recommendations section on LinkedIn.

From the inside out: clicking through to outdated links

Jorick Thijs Polderman, senior technical recruiter at Transferwise, mentions a common anti-pattern where candidates add links to resumes that are not up to date:

“What I often see is that there are either no contributions or repositories on the candidate's Github pages, or a personal website that isn't functioning. I often see GitHub pages or personal websites not giving away more information that could be beneficial to the candidate's application processsuch as a more detailed resume or a technical blog.

When adding a link, make sure the links work and the information is up to date. For example, your LinkedIn should be reflecting your resume. If you have nothing visible on GitHub, it might as well not be included. The same goes for personal websites.”

Common mistakes: unnecessary details

Take a look at the following resume that is for an application for a position in the UK. What sections don’t add much to the content?

Image represents a tech resume for Pam Nitlittle, structured in sections.  At the top, personal information is displayed, including location (Barcelona, Spain), email (hello@example.com), and links to various online profiles: LinkedIn (@in/pam4211), GitHub (@pam4211), StackOverflow (@pam4211), Medium (@pam4211), Dev.to (pam4211), and Skype (pam4211). A headshot of Pam is positioned to the right. Below this contact information, a comment `<!-- Usual resume content: languages & technologies, work experience, education -->` indicates the typical content of a resume, which is then followed by a 'Languages' section listing Pam's proficiency in Turkish (mother tongue), English (fluent), German (intermediate), and Spanish (basic conversational). Finally, a 'References' section includes testimonials from John McAllister (Director Engineering at HomeCorp) and Sarah Smith (Senior Engineer at FlightScanner), each providing positive feedback on Pam's skills and work ethic.  The resume concludes with a statement indicating further references are available upon request.

Outside the core content, not many of the sections do add value. The photo introduces bias. There are far too many contact details and social accounts listed. There’s no reason to add all of these. Spoken languages are unimportant in a market or company where English is the only language spoken. And references don’t have a place on the resume, including praise. Let’s remove all the unnecessary sections:

Image represents a simplified representation of a tech resume header.  At the top, the name 'Pam Nitlittle' is prominently displayed in bold, dark red font, underlined by a thin, dark red line. Below this, contact information is presented: 'Barcelona, Spain' is listed, followed by an email address 'hello@example.com', and links to LinkedIn and GitHub profiles, each indicated by underlined text. Finally, a light gray box contains a comment-style HTML tag (`<!-- -->`) enclosing a description: 'Usual resume content: languages & technologies, work experience, education'. This comment suggests that the box represents the typical content that would follow the header in a full resume, encompassing sections detailing programming languages, technologies used, work history, and educational background.  There is no explicit visual connection between the header and the comment box, but the arrangement implies that the contact information and the described content are components of a complete resume.

Now we only have information that is relevant for the position: the “meat” of the resume.

Links taking up too much attention (coloraturas or space), dead links, pointing to non-high-quality content.

  • Non-clickable links. I often see links to projects, GitHub or other sites that are not clickable. The recruiter will never copy-and-paste this link, and as a hiring manager, I will also do this once in a blue moon. Make that link clickable like I did this one:
    https://github.com/gergelyorosz.
  • Linking to stale GitHub, Linkedin or websites. Many dev resumes have links to GitHub, Linkedin or a website. While most recruiters and hiring managers won’t bother clicking through, the thorough ones will. There are few more disappointing things than seeing that your GitHub is untouched for years, your pinned repos do not have READMEs or that your website was last updated 4 years ago. Link only if they are up to date. Otherwise, save the space and remove it. Contrary to popular belief, you don’t need to have these links on your resume—especially when their contents don’t add value to your current application.
  • Leaving in the full URL of the link. In some resumes, links to portfolios or projects are pasted in their full length, such as
    https://github.com/gergelyorosz/PythonGettingStarted/blob/master/README.md
    Don’t do this. Make links clickable, and hide the full URL behind a name that describes what the link is for. No one will print out your resume, then type in the URL into a browser.
  • Links standing out too much in color and style. Many resumes leave links as they are, with the default blue color. While this would not be a problem, this is often the only color in the resume, pulling eyes to links that are meant to be details. Consider making links blend in, rather than standing out, by keeping them the same color as text, and underlining them.

Common mistakes: links

Take a look at a section of this resume, which contains several links.

Image represents a tech resume for Sam Notohere, displaying contact information (email: hello@example.com and website: https://SamDev.github.io/) at the top.  Below, a 'WORK EXPERIENCE' section details two roles:  a current position at Cloudless as a Backend Software Engineer (Remote) since January 2019, involving RESTful API maintenance and third-party API integrations; and a previous role as Team Lead at MennoMark from March 2018 to January 2019, encompassing team management, developer training, and software delivery.  Specific project details are included, such as building a mobile app (link provided: http://www.mennoInova.com/apps/farming/download) using Kotlin and SQLite.  A 'PERSONAL PROJECTS' section lists two projects:  `pythonGettingStarted` (GitHub link: https://github.com/gergelyorosz/PythonGettingStarted/blob/master/README.md), described as a Python learning project, and `restAPI with Node` (GitHub link: https://github.com/gergelyorosz/restApiWithNode), showcasing modern API design principles implemented using Node.js.  The resume is structured chronologically, with each role and project clearly labeled and described, showcasing technical skills and accomplishments.

This resume section contains most of the common mistakes with links. The color of them stands out and draws attention to the links instead of the relevant content. The links take up too much space by typing out the full URL. The font for the links stands out—there is little reason to use a distinct font. Let’s address these issues. Note that there’s a lot more to improve on in the resume content. In this example, we'll only improve links and highlighting.

Image represents a tech resume for Sam Notohere, with contact information 'hello@example.com, SamDev.github.io' at the top.  The resume is divided into 'WORK EXPERIENCE' and 'PERSONAL PROJECTS' sections.  The 'WORK EXPERIENCE' section details two roles: 'Backend Software Engineer' at Cloudless (Jan 2019-present), describing re-architecting and maintaining a RESTful API using PHP/Laravel and third-party APIs; and 'Team Lead' at MennoMark (Mar 2018-Jan 2019), outlining managing a team, onboarding new developers, and leading the development of a mobile app (using Kotlin and SQLite) and an API (using PHP/Lumen, AWS services, and Postman).  The 'PERSONAL PROJECTS' section lists 'pythonGettingStarted,' a project for learning Python, and 'restAPI with Node,' showcasing the implementation of modern API design principles using Node.js, including HATEOAS, caching, and content negotiation.  Both personal projects include links to view the code on GitHub.  The resume uses bullet points to list responsibilities and accomplishments within each role and project, clearly structuring the information chronologically and by category.

With the changes, we’ve removed the highlight colors for the links. Now, these don’t draw any attention. Instead, we can focus on drawing attention to where we’d like the recruiter and hiring manager to look first. In this case, this person chose to focus on the titles, the dates of employment, and the names of the personal projects. There’s also an option to use a highlight color to make the resume even more readable, for example, by coloring the parts that are just section names with a highlight color:

Image represents a tech resume for Sam Notohere (hello@example.com, SamDev.github.io).  The resume is structured into sections:  'WORK EXPERIENCE' lists two roles. The first, 'Backend Software Engineer' at 'Cloudless' (Jan 2019 – present), details re-architecting and maintaining a RESTful API using PHP/Laravel and third-party APIs. The second, 'Team Lead' at 'MennoMark' (Mar 2018 – Jan 2019), describes managing a three-developer team, training new developers, and leading the development of a mobile app (Kotlin, SQLite) and an API (PHP/Lumen, AWS RDS, Elastic Beanstalk, Postman) for the MennoInnova mobile application. The 'PERSONAL PROJECTS' section showcases two projects: 'pythonGettingStarted,' a learning project with code available on GitHub, and 'restAPI with Node,' demonstrating modern API design principles (HATEOAS, Caching, Content Negotiation) with code also on GitHub.  Each bullet point under the work experience sections describes specific tasks and technologies used, with links to GitHub repositories provided for the personal projects.  The entire document follows a clear, hierarchical structure, with section headings and bullet points to organize the information chronologically and thematically.

We’ve gone from having the default link color highlighting parts of the resume that were unimportant, to the important parts of the resume standing out. Now the “placeholder” information stands out with a color of choice and makes the resume easier to scan. Links are still clickable, and an underline invites people to click them. In practice, recruiters and hiring managers will only click these links after finding the key information they are looking for in the first scan.

Recap: Actions to Improve Your Resume

In this chapter, we’ve looked at some of the most common mistakes with developer resumes. Poor format with sloppy phrasing and forgetting about who you are writing for—the recruiter and the hiring manager for that specific position—are common ones. Adding unnecessary details, from personal details to spoken languages or a list of references is another one. And drawing the reader’s attention to things that are not really important—for example, by using links that are long and have a standout color—is also something that you’ll want to avoid.

Do the following checks to ensure your resume does not have a “classic” mistake that will make a recruiter roll their eyes:

  1. Do you have a photo on your resume? Remove it.
  2. How many contact details and social profile links do you have on your resume? You should have no more than four. Do you need all of these?
  3. Do all the links work on your resume? Click through each of them.
  4. Do all the links point to professional pages on your resume? When you click through, will people see well-formatted, well-written content that conveys the type of work they can expect from you? Ensure this is the case also for your blog, GitHub, LinkedIn and any other links you provide.
  5. Is your resume easy to scan? Give your resume to a friend and ask them to take a look at it for 5 seconds, then tell you their immediate impression. Did they see key details? Did they think it’s too crowded? Or that it has too little information?
  6. Is your resume simple enough? Are you using any “fancy” designs? If so, is this kind of “fanciness” getting in the way of readability? If it’s not in the way of readability, that’s great. However, if it’s making things harder to scan, consider going with something more simple. Note that for frontend, UX or design-heavy positions, some nice flair can be a great touch.
  7. Is the resume concise and to the point? Are you using short sentences? Do you have bullet points with rarely more than two lines?
  8. Are you bolding too much? Aim to not bold anything inside a sentence, like in this one. Only bold important things like job title, company name, date, or headers.
  9. Is formatting consistent? Are you using standard font sizes, and aligning with tabs, over spacing things to be approximately close?
  10. Are you using internal company jargon? Do you have project names that only people inside the company would understand? If so, consider changing them to describing the project.
  11. Do you have a (spoken) languages or a references section? You can probably remove both of these.
  12. Do links stand out with a different color or formatting? They shouldn’t. They take away space and attention.
ask alexask alex expend